Registers a full `appData` and returns `appDataHash`.
Uploads a full appData to orderbook and returns the corresponding appDataHash.
PUT
/
api
/
v1
/
app_data
Registers a full `appData` and returns `appDataHash`.
curl --request PUT \
--url https://api.cow.fi/mainnet/api/v1/app_data \
--header 'Content-Type: application/json' \
--data '
{
"fullAppData": "{\"version\":\"0.9.0\",\"metadata\":{}}"
}
'import requests
url = "https://api.cow.fi/mainnet/api/v1/app_data"
payload = { "fullAppData": "{\"version\":\"0.9.0\",\"metadata\":{}}" }
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({fullAppData: '{"version":"0.9.0","metadata":{}}'})
};
fetch('https://api.cow.fi/mainnet/api/v1/app_data', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cow.fi/mainnet/api/v1/app_data",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'fullAppData' => '{"version":"0.9.0","metadata":{}}'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.cow.fi/mainnet/api/v1/app_data"
payload := strings.NewReader("{\n \"fullAppData\": \"{\\\"version\\\":\\\"0.9.0\\\",\\\"metadata\\\":{}}\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.cow.fi/mainnet/api/v1/app_data")
.header("Content-Type", "application/json")
.body("{\n \"fullAppData\": \"{\\\"version\\\":\\\"0.9.0\\\",\\\"metadata\\\":{}}\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cow.fi/mainnet/api/v1/app_data")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"fullAppData\": \"{\\\"version\\\":\\\"0.9.0\\\",\\\"metadata\\\":{}}\"\n}"
response = http.request(request)
puts response.read_body"0x0000000000000000000000000000000000000000000000000000000000000000""0x0000000000000000000000000000000000000000000000000000000000000000"Body
application/json
The appData document to upload.
Response
The full appData already exists.
32 bytes encoded as hex with 0x prefix.
It's expected to be the hash of the stringified JSON object representing the appData.
Example:
"0x0000000000000000000000000000000000000000000000000000000000000000"
Last modified on March 17, 2026
Was this page helpful?
⌘I
Registers a full `appData` and returns `appDataHash`.
curl --request PUT \
--url https://api.cow.fi/mainnet/api/v1/app_data \
--header 'Content-Type: application/json' \
--data '
{
"fullAppData": "{\"version\":\"0.9.0\",\"metadata\":{}}"
}
'import requests
url = "https://api.cow.fi/mainnet/api/v1/app_data"
payload = { "fullAppData": "{\"version\":\"0.9.0\",\"metadata\":{}}" }
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({fullAppData: '{"version":"0.9.0","metadata":{}}'})
};
fetch('https://api.cow.fi/mainnet/api/v1/app_data', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cow.fi/mainnet/api/v1/app_data",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'fullAppData' => '{"version":"0.9.0","metadata":{}}'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.cow.fi/mainnet/api/v1/app_data"
payload := strings.NewReader("{\n \"fullAppData\": \"{\\\"version\\\":\\\"0.9.0\\\",\\\"metadata\\\":{}}\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.cow.fi/mainnet/api/v1/app_data")
.header("Content-Type", "application/json")
.body("{\n \"fullAppData\": \"{\\\"version\\\":\\\"0.9.0\\\",\\\"metadata\\\":{}}\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cow.fi/mainnet/api/v1/app_data")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"fullAppData\": \"{\\\"version\\\":\\\"0.9.0\\\",\\\"metadata\\\":{}}\"\n}"
response = http.request(request)
puts response.read_body"0x0000000000000000000000000000000000000000000000000000000000000000""0x0000000000000000000000000000000000000000000000000000000000000000"